icon

nazo6.dev

一覧に戻る
2021/4/30 7 min read

Arch Linux on wsl・wslg環境構築


#(2021-04-30)

wslgがきてメインの開発環境にLinuxを使う機運が高まったので環境構築したメモ。 せっかくなので(?)Arch Linuxを使うことにする

#環境

  • Windows 10 21364 (執筆時 Insider Preview Devチャンネル)
  • wsl有効

※この先wsl2という前提

#Arch Linuxをインストール (2021-04-30)

偉大な先人が作ってくれたまさにこのための https://github.com/yuk7/ArchWSL というものがあるのでこれを使う。

scoopにextras bucketを追加してれば次のコマンドで一発

scoop install archwsl

本来Arch Linuxはインストールにも一苦労という代物らしいがwslならこれでインストール作業は終了。素晴らしい。

#いろいろ設定 (2021-04-30)

の前にとりあえずアップデートする。と思ったらkeyringどうこうとか出てきたのでこちらの記事のとおりに

pacman-key --init
pacman-key --populate archlinux
pacman -Syyu

とする。

#ユーザーの設定

#ユーザー追加

デフォルトのユーザーはrootユーザーなので新しくユーザーを作ってパスワードを設定。

[root]$ useradd -m -g wheel <username>
[root]$ passwd <username>

#rootユーザー無効化

またついでにrootユーザーを無効化しておく。 以下の参考記事の通りにやるがviがなくvisudoコマンドが実行できなかったのでvimで/etc/sudoersを編集する。またsudoをインストールしろと書いてあるがなぜか入ってた http://bobbyquine.hatenablog.com/entry/2018/01/18/024958

[root]$ vim /etc/sudoers
/etc/sudoers
## 以下を追記
<username> ALL=(ALL) ALL

次にwslのデフォルトログインユーザーを変更する。 https://docs.microsoft.com/ja-jp/windows/wsl/wsl-config#change-the-default-user-for-a-distribution これの通りに実行する。

windows側のコマンド
> arch config --default-user <username>

再度wslにログインすると指定したユーザー名でログインされているはず。 ここでrootユーザーを凍結する。

[<username>]$ sudo passwd -l root

#yayのインストール (2021-04-30)

Arch LinuxにはAURというものがあり、多くの公式に登録されていないソフトをインストールできる。 そのAURに登録されているソフトウエアを管理するためのソフトウエアがyay、らしい。 https://github.com/Jguer/yay

上のリンクの通りやってもインストールできるがこれはソースからビルドするので遅い。なのでバイナリをインストール。

$ cd ~
$ pacman -S --needed git base-devel
$ git clone https://aur.archlinux.org/yay-bin
$ cd yay-bin
$ makepkg -si

これでyayが使えるようになる。yayコマンドはpacmanと同じように使える。 あとは好きなソフトをインストールするだけ

#pacman高速化

pacmanのダウンロードが遅いので並列にダウンロードできるpowerpillを使う。 またyayでもデフォルトでpowerpillを使うように設定。 参考記事↓ https://wiki.archlinux.jp/index.php/Powerpill https://wiki.browniealice.net/technote/arch/yay/

$ yay -S powerpill
$ yay --save --pacman powerpill

#pacman or yay

yayはpacmanのラッパーにすぎないためAURではない公式リポジトリのパッケージもyayで普通にインストールできる。 しかし公式でインストールできるものなのかAURのものなのか意識せずメンテナンスされてないパッケージをインストールしてしまう可能性があるため先にpacmanを使うのがよい(と解釈している)。 ただめんどくさいしyayだとsudoをつけなくていいので結局全部yayを使うことになりそう…

#shellをfishに (2021-04-30)

shellにはfishを使うことにした。とりあえずインストール

$ sudo pacman -S fish

さた普通ならchshでデフォルトシェルを変えるところなのだがどうにもArchではfishをデフォルトシェルにするのは非推奨らしい。 https://wiki.archlinux.jp/index.php/Fish (てかこれ日本語あるのすごい)

ということで上のページにある通り.bashrcからfishを起動させる。

.bashrc
## これを追記
exec fish

#wslgを試す (2021-04-30)

正直LinuxのGUIはよくわからなかったがとりあえず適当なGUIアプリとインストールすれば普通に起動できた。

> sudo pacman -S nemo
> nemo

#genieをインストール (2021-04-30)

ロケールを変えようといろいろ設定していたところなんかうまくいかない。どうやらwslだとsystemdというものが動かないせいらしいのでそれを解決するためのソフトのgenieを入れる。 https://github.com/arkane-systems/genie

上にある通りに zstファイルをインストールする。コマンド内のリンクは最新のものに置き換えること。

> sudo pacman -S wget
> yay -S daemonize
> wget https://github.com/arkane-systems/genie/releases/download/v1.40/genie-systemd-1.40-1-x86_64.pkg.tar.zst
> sudo pacman -U ./genie-systemd-1.40-1-x86_64.pkg.tar.zst

これでgenieコマンドが使えるようになっているはず。 起動時に実行するように設定する。

~/.bashrc
## 追記
if [[ ! -v INSIDE_GENIE ]]; then
    exec /usr/bin/genie -s
fi

#cannot open displayと表示されてwslgが実行できない場合がある (2021-04-30)

firefoxなど一部のソフトでこの問題が発生した。いろいろ調べたら無事解決策が見つかった。 どうにもsystemdを作動させていると発生する模様。

https://github.com/microsoft/wslg/issues/43#issuecomment-826039096 このコメントの通りに/etc/tmpfiles.d/wslg.conf

##  This file is part of the debianisation of systemd.
#
##  systemd is free software; you can redistribute it and/or modify it
##  under the terms of the GNU General Public License as published by
##  the Free Software Foundation; either version 2 of the License, or
##  (at your option) any later version.
 
## See tmpfiles.d(5) for details
 
## Type Path           Mode UID  GID  Age Argument
L+     /tmp/.X11-unix -    -    -    -   /mnt/wslg/.X11-unix

を追加するだけ。wslを再起動して無事解決。

Share this article:
一覧に戻る

© 2025 nazo6. All rights reserved.